home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / io / LineNumberInputStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.4 KB  |  115 lines

  1. package java.io;
  2.  
  3. /** @deprecated */
  4. @Deprecated
  5. public class LineNumberInputStream extends FilterInputStream {
  6.    int pushBack = -1;
  7.    int lineNumber;
  8.    int markLineNumber;
  9.    int markPushBack = -1;
  10.  
  11.    public LineNumberInputStream(InputStream var1) {
  12.       super(var1);
  13.    }
  14.  
  15.    public int read() throws IOException {
  16.       int var1 = this.pushBack;
  17.       if (var1 != -1) {
  18.          this.pushBack = -1;
  19.       } else {
  20.          var1 = this.in.read();
  21.       }
  22.  
  23.       switch (var1) {
  24.          case 13:
  25.             this.pushBack = this.in.read();
  26.             if (this.pushBack == 10) {
  27.                this.pushBack = -1;
  28.             }
  29.          case 10:
  30.             ++this.lineNumber;
  31.             return 10;
  32.          default:
  33.             return var1;
  34.       }
  35.    }
  36.  
  37.    public int read(byte[] var1, int var2, int var3) throws IOException {
  38.       if (var1 == null) {
  39.          throw new NullPointerException();
  40.       } else if (var2 >= 0 && var2 <= var1.length && var3 >= 0 && var2 + var3 <= var1.length && var2 + var3 >= 0) {
  41.          if (var3 == 0) {
  42.             return 0;
  43.          } else {
  44.             int var4 = this.read();
  45.             if (var4 == -1) {
  46.                return -1;
  47.             } else {
  48.                var1[var2] = (byte)var4;
  49.                int var5 = 1;
  50.  
  51.                try {
  52.                   for(; var5 < var3; ++var5) {
  53.                      var4 = this.read();
  54.                      if (var4 == -1) {
  55.                         break;
  56.                      }
  57.  
  58.                      if (var1 != null) {
  59.                         var1[var2 + var5] = (byte)var4;
  60.                      }
  61.                   }
  62.                } catch (IOException var7) {
  63.                }
  64.  
  65.                return var5;
  66.             }
  67.          }
  68.       } else {
  69.          throw new IndexOutOfBoundsException();
  70.       }
  71.    }
  72.  
  73.    public long skip(long var1) throws IOException {
  74.       short var3 = 2048;
  75.       long var4 = var1;
  76.       if (var1 <= 0L) {
  77.          return 0L;
  78.       } else {
  79.          int var7;
  80.          for(byte[] var6 = new byte[var3]; var4 > 0L; var4 -= (long)var7) {
  81.             var7 = this.read(var6, 0, (int)Math.min((long)var3, var4));
  82.             if (var7 < 0) {
  83.                break;
  84.             }
  85.          }
  86.  
  87.          return var1 - var4;
  88.       }
  89.    }
  90.  
  91.    public void setLineNumber(int var1) {
  92.       this.lineNumber = var1;
  93.    }
  94.  
  95.    public int getLineNumber() {
  96.       return this.lineNumber;
  97.    }
  98.  
  99.    public int available() throws IOException {
  100.       return this.pushBack == -1 ? super.available() / 2 : super.available() / 2 + 1;
  101.    }
  102.  
  103.    public void mark(int var1) {
  104.       this.markLineNumber = this.lineNumber;
  105.       this.markPushBack = this.pushBack;
  106.       this.in.mark(var1);
  107.    }
  108.  
  109.    public void reset() throws IOException {
  110.       this.lineNumber = this.markLineNumber;
  111.       this.pushBack = this.markPushBack;
  112.       this.in.reset();
  113.    }
  114. }
  115.